<?php

class Acceso_IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl();
		$this->_options= $this->getInvokeArg('bootstrap')->getOptions();
    }

    public function indexAction()
    {
		/*$opt= array (
    			'custom' => array (
    				'timeout' => $this->_options['auth']['timeout']
 				)   	
    	);*/
        $this->view->bodyScripts = 'style="display:none;"';//ocultamos los menus del modulo
		$this->_helper->redirector->gotoUrl('/index/login');
    }

    public function loginAction()
    {
		$this->_helper->layout->disableLayout();
		$this->_helper->layout->setLayout('login');
		/*$opt= array (
    			'custom' => array (
    				'timeout' => $this->_options['auth']['timeout']
 				)   	
    	);*/
        $this->view->bodyScripts = 'style="display:none;"';//ocultamos los menus del modulo
		//$this->view->headLink()->appendStylesheet($this->view->baseUrl('/css/login-box.css'));

        if ($this->_request->isPost()) {
            Zend_Loader::loadClass('Zend_Filter_StripTags');//Filtro para parametros de imgreso
            $f = new Zend_Filter_StripTags();
            $username = $f->filter($this->_request->getPost('username')); //capturamos y filtramos el nombre de usuario
            $password = $f->filter($this->_request->getPost('password')); //capturamos y filtramos el password del usuario

            if (empty($username)) {//Verificamos el user name si es vacio enviamos un error
                   $this->view->message = '<div class="error">Por favor ingrese su nombre de usuario</div>';
               } else {

                Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable'); //Cargamos laclase  de Zend Auth
                $dbAdapter = Zend_Registry::get('pgdb'); //a traves de la variable de registro de la conexion creamos el adpatador
                $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                $authAdapter->setTableName('susuarios.tb_usuario');  //configuramos la tabla de usuarios
                $authAdapter->setIdentityColumn('usuario'); //configuramos el nombre de usuario para su verificacion
                $authAdapter->setCredentialColumn('clave'); // configuramos el password para su verificacion

                $authAdapter->setIdentity($username);   //registramos el username enviado para su validacion
                $authAdapter->setCredential($password); //registramos contraseña enviado para su validacion

                $auth = Zend_Auth::getInstance(); //creamos una intancia de Zend Auth
                $result = $auth->authenticate($authAdapter); // enviamos los parametros para su validacion


                if ($result->isValid()) {
                    $data = $authAdapter->getResultRowObject(null,'password'); //almacenamos los datos excepto el password
                    $auth->getStorage()->write($data); //creamos la sesion para el usuario
                    $eventNamespace = new Zend_Session_Namespace('name_space');
					$eventNamespace->usuario = $username;
					$this->_helper->redirector->gotoUrl('/index/ingresado');//direccionamos al menu de inicio

                 } else {// //Si las credenciales no son validas mostramos un error
                    $this->view->message ='<div class="error">Las credenciales de autenticación no son validas</div>';
                 }
               }
        }
    }
    
    public function logoutAction()
    {
       Zend_Auth::getInstance()->clearIdentity(); //cerramos la sesion del usuario
       $this->_redirect('index/login'); // direccionamos al login

    }

	public function ingresadoAction()
    {
		/*$opt= array (
    			'custom' => array (
    				'timeout' => $this->_options['auth']['timeout']
 				)   	
    	);*/
        $this->view->message ='<div class="error">Las credenciales de autenticación no son validas</div>';
    }
}







